package com.example.final_project.mapper;

import com.example.final_project.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

@Mapper
public interface UserMapper {
    // 新增用户
    int insert(User user);

    // 根据用户名查询用户数量，用于判断用户名是否存在
    int countByUsername(String username);

    // 查询所有用户ID，用于手动分配ID
    List<Long> selectAllIds();

    // 查询用户表中的最大ID
    Long selectMaxId();

    // 更新AUTO_INCREMENT的值
    void updateAutoIncrement(Long value);

    // 分页条件查询用户列表
    List<User> selectList(@Param("realName") String realName, @Param("department") String department);
    // 删除用户
    int deleteById(Long id);

    // 根据ID查询用户
    User selectById(Long id);

    // 更新用户信息
    int update(User user);

    // 根据用户名查询用户
    User selectByUsername(String username);

    int countAllUsers();

    int countByStatus(int status);

    List<User> selectLatestUsers(int limit);

    List<Map<String, Object>> getUserTypeStats();

    List<User> getLatestUsers(@Param("limit") int limit);
} 